package com.lanyun.aicorrectassistant.domain.studentAssignments;

import com.lanyun.aicorrectassistant.basic.bean.Result;
import com.lanyun.aicorrectassistant.basic.entity.StudentAssignments;
import com.lanyun.aicorrectassistant.controller.admin.studentAssignments.vo.*;
import com.lanyun.aicorrectassistant.basic.bean.PageResult;
import reactor.core.publisher.Flux;

/**
 * 学生作业表领域服务接口
 *
 * @author makejava
 * @version 1.0
 * @date 2025-05-12 01:54:22
 */
public interface StudentAssignmentsDomainService {

    /**
     * 分页查询
     *
     * @param requestPageVO 分页查询参数
     * @return 分页结果
     */
    PageResult<StudentAssignmentsResponseVO> page(StudentAssignmentsRequestPageVO requestPageVO);

    /**
     * 更新数据
     *
     * @param requestVO 更新参数
     * @return 是否成功
     */
    Boolean update(StudentAssignmentsRequestVO requestVO);

    /**
     * 删除数据
     *
     * @param id 主键ID
     * @return 是否成功
     */
    Boolean delete(Long id);

    /**
     * 新增数据
     *
     * @param requestVO 新增参数
     * @return 是否成功
     */
    void insert(StudentAssignmentsRequestVO requestVO) throws Exception;

    /**
     * 根据主键获取详情
     *
     * @param id 主键ID
     * @return 详情数据
     */
    StudentAssignmentsResponseVO get(Long id);

    /**
     * 批改作业
     *
     * @param requestVO
     * @return
     */
    Flux<String> saveGradingResult(StudentAssignmentsRequestVO requestVO);

    /**
     * 提交批改
     *
     * @param id
     * @param gradingResult
     * @return
     */
    Boolean submitGrading(Long id, String gradingResult);
}

